package com.qixin.modules.eaApplication.entity;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * @Description: 招待费申请单
 * @Author: qixin-boot
 * @Date:   2021-07-06
 * @Version: V1.0
 */
@ApiModel(value="ea_entertain_apply对象", description="招待费申请单")
@Data
@TableName("ea_entertain_apply")
public class EaEntertainApply implements Serializable {
    private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private java.lang.String id;
	/**创建人*/
    @ApiModelProperty(value = "创建人")
    private java.lang.String createBy;
    private transient java.lang.String createByName;
	/**创建日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private java.util.Date createTime;
	/**更新人*/
    @ApiModelProperty(value = "更新人")
    private java.lang.String updateBy;
    private transient java.lang.String updateByName;
	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private java.util.Date updateTime;
	/**所属部门*/
    @ApiModelProperty(value = "所属部门")
    private java.lang.String sysOrgCode;
    private transient java.lang.String sysOrgCodeName;
	/**单据编号*/
	@Excel(name = "单据编号", width = 15)
    @ApiModelProperty(value = "单据编号")
    private java.lang.String billNo;
	/**单据日期*/
	@Excel(name = "单据日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "单据日期")
    private java.util.Date billDate;
	/**单据状态*/
	@Excel(name = "单据状态", width = 15, dicCode = "BillState")
    @Dict(dicCode = "BillState")
    @ApiModelProperty(value = "单据状态")
    private java.lang.Integer state;
    private transient java.lang.String stateName;
	/**财务组织*/
	@Excel(name = "财务组织", width = 15)
    @ApiModelProperty(value = "财务组织")
    private java.lang.String financeDeptId;
    private transient java.lang.String financeDeptIdName;
	/**申请日期*/
//	@Excel(name = "申请日期", width = 15, format = "yyyy-MM-dd")
//	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
//    @DateTimeFormat(pattern="yyyy-MM-dd")
//    @ApiModelProperty(value = "申请日期")
//    private java.util.Date applyDate;
	/**申请人*/
	@Excel(name = "申请人", width = 15)
    @ApiModelProperty(value = "申请人")
    private java.lang.String personId;
        private transient java.lang.String personIdName;
	/**申请人单位*/
	@Excel(name = "申请人单位", width = 15)
    @ApiModelProperty(value = "申请人单位")
    private java.lang.String companyCodeId;
    private transient java.lang.String companyCodeIdName;
	/**申请人部门*/
	@Excel(name = "申请人部门", width = 15)
    @ApiModelProperty(value = "申请人部门")
    private java.lang.String deptId;
    private transient java.lang.String deptIdName;
	/**费用承担单位*/
	@Excel(name = "费用承担单位", width = 15)
    @ApiModelProperty(value = "费用承担单位")
    private java.lang.String costCompCodeId;
    private transient java.lang.String costCompCodeIdName;
	/**费用承担部门*/
	@Excel(name = "费用承担部门", width = 15)
    @ApiModelProperty(value = "费用承担部门")
    private java.lang.String costDept;
    /**费用承担部门名称*/
    @Excel(name = "费用承担部门名称", width = 15)
    @ApiModelProperty(value = "费用承担部门名称")
    private java.lang.String costDeptName;
	/**申请金额*/
	@Excel(name = "申请金额", width = 15)
    @ApiModelProperty(value = "申请金额")
    private java.math.BigDecimal amount;
	/**大写金额*/
    private transient String amount_cn;
	/**已用金额*/
	@Excel(name = "已用金额", width = 15)
    @ApiModelProperty(value = "已用金额")
    private java.math.BigDecimal hasCost;
	/**余额*/
	@Excel(name = "余额", width = 15)
    @ApiModelProperty(value = "余额")
    private java.math.BigDecimal balance;
	/**币种*/
	@Excel(name = "币种", width = 15, dicCode = "currency")
    @Dict(dicCode = "currency")
    @ApiModelProperty(value = "币种")
    private java.lang.Integer currency;
	/**接待类型*/
	@Excel(name = "接待类型", width = 15, dicCode = "reception_type")
    @Dict(dicCode = "reception_type")
    @ApiModelProperty(value = "接待类型")
    private java.lang.String receptionType;
    private transient java.lang.String receptionTypeName;
	/**接待时间*/
	@Excel(name = "接待时间", width = 20, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "接待时间")
    private java.util.Date receptionTime;
	/**接待人数*/
	@Excel(name = "接待人数", width = 15)
    @ApiModelProperty(value = "接待人数")
    private java.lang.Integer receptionMan;
	/**经办部门*/
	@Excel(name = "经办部门", width = 15)
    @ApiModelProperty(value = "经办部门")
    private java.lang.String handDept;
    private transient java.lang.String handDeptName;
	/**表单Key*/
	@Excel(name = "表单Key", width = 15)
    @ApiModelProperty(value = "表单Key")
    private java.lang.String getFormKey;
	/**联系人姓名*/
	@Excel(name = "联系人姓名", width = 15)
    @ApiModelProperty(value = "联系人姓名")
    private java.lang.String receptionName;
	/**联系人电话*/
	@Excel(name = "联系人电话", width = 15)
    @ApiModelProperty(value = "联系人电话")
    private java.lang.String receptionPhone;
	/**费用项目*/
	@Excel(name = "费用项目", width = 15)
    @ApiModelProperty(value = "费用项目")
    private java.lang.String indexId;
    private transient java.lang.String indexIdName;
	/**目的地*/
	@Excel(name = "目的地", width = 15)
    @ApiModelProperty(value = "目的地")
    private java.lang.String region;
    private transient java.lang.String regionName;
	/**事由*/
	@Excel(name = "事由", width = 15)
    @ApiModelProperty(value = "事由")
    private java.lang.String cause;
    /**附件*/
    @Excel(name = "附件", width = 500)
    @ApiModelProperty(value = "附件")
    private java.lang.String attch;
    /**图片*/
    @Excel(name = "图片", width = 500)
    @ApiModelProperty(value = "图片")
    private java.lang.String picture;

    //审批人id
    private transient String auditManId;
    //审批人
    private transient String auditMan;
    //提交类型:保存:add,提交:send
    private transient String saveType;
    /**是否被使用:0未使用,1已使用*/
    @Excel(name = "是否被使用:0未使用,1已使用", width = 15)
    @ApiModelProperty(value = "是否被使用:0未使用,1已使用")
    private String isused;
    /**是否变更状态:0未在变更,1正在变更,正在变更状态不允许新建新的变更单*/
    @Excel(name = "是否变更状态", width = 15)
    @ApiModelProperty(value = "是否变更状态")
    private String isChanging;

    /**用车安排*/
    @Excel(name = "用车安排", width = 15)
    @ApiModelProperty(value = "用车安排")
    private java.lang.String vehicleArrangement;
    /**住宿安排*/
    @Excel(name = "住宿安排", width = 15)
    @ApiModelProperty(value = "住宿安排")
    private java.lang.String accommodationArrangements;
    /**赠送纪念品*/
    @Excel(name = "赠送纪念品", width = 15)
    @ApiModelProperty(value = "赠送纪念品")
    private java.lang.String presentSouvenirs;
    /**用餐安排_时间*/
    @Excel(name = "用餐安排_时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "用餐安排_时间")
    private java.util.Date mealArrangementDate;
    /**用餐安排_地点*/
    @Excel(name = "用餐安排_地点", width = 15)
    @ApiModelProperty(value = "用餐安排_地点")
    private java.lang.String mealArrangementAddr;
    /**用餐安排_标准*/
    @Excel(name = "用餐安排_标准", width = 15)
    @ApiModelProperty(value = "用餐安排_标准")
    private java.lang.String mealArrangementStandard;
    /**用餐安排_陪餐人员*/
    @Excel(name = "用餐安排_陪餐人员", width = 15)
    @ApiModelProperty(value = "用餐安排_陪餐人员")
    private java.lang.String mealArrangementMealAttendants;
    private transient String mealArrangementMealAttendantsName;
    /**用餐安排_工作人员*/
    @Excel(name = "用餐安排_工作人员", width = 15)
    @ApiModelProperty(value = "用餐安排_工作人员")
    private java.lang.String mealArrangementWorkingPersonnel;
    private transient String mealArrangementWorkingPersonnelName;
    /**公务接待是否协助安排其他用餐*/
    @Excel(name = "公务接待是否协助安排其他用餐", width = 15)
    @ApiModelProperty(value = "公务接待是否协助安排其他用餐")
    private Boolean isOfficialReceptionsOther;
    /**商务接待除宴请外是否安排工作餐*/
    @Excel(name = "商务接待除宴请外是否安排工作餐", width = 15)
    @ApiModelProperty(value = "商务接待除宴请外是否安排工作餐")
    private Boolean isBusinessReceptionsOther;
    /**预算费用补充说明*/
    @Excel(name = "预算费用补充说明", width = 15)
    @ApiModelProperty(value = "预算费用补充说明")
    private java.lang.String budgetExpensesSupplementaryNotes;

    @ApiModelProperty(value = "更新时间-用于校验时效性")
    private transient String time;

    @ApiModelProperty(value = "招待费报销单id")
    private String eaEntertainId;

    /**流程实例id*/
    @Excel(name = "流程实例id", width = 15)
    @ApiModelProperty(value = "流程实例id")
    private java.lang.String procInstId;
}
